package com.algorithm.order;

/**
 *
 *  *  插入排序 稳定
 * 时间复杂度
 * 空间复杂度
 * 最好的情况
 * 最坏的情况
 * @auth &{zhujiule}
 * @date 2018/7/22
 * @copyright 杭州物恋网科技有限公司
 **/
public class InsertOrder {

    private final int[] SERQUENCE = {21,10,2,3,41,45,11,52,1,23};

    public void actionInsertOrder(){

        for(int i =1 ;i< SERQUENCE.length;i++){

            int j = 0;

            //当前比较的对象
            int temp = SERQUENCE[i];

            //当前的序号的数据和已排序的比较 ，默认从大往小比较
            for(j=i-1; j>=0&&temp<SERQUENCE[j]; j--){

                SERQUENCE[j+1]= SERQUENCE[j];
            }

            //此处i的位置即为比较后的需要调整的位置
            SERQUENCE[j+1] = temp;

            printCurrentSequence(i);
        }

    }

    private void printCurrentSequence(int currentPosition){
        System.out.println();
        System.out.print("当前位置 ："+currentPosition+"\t");

        for(int i =0;i<=currentPosition;i++){
            System.out.print(SERQUENCE[i]+"\t");
        }
    }
}
